Network port service control

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


Open ports

For development and remote maintenance, the following TCP ports are open:

Port

Protocol (typical)

Description

22

TCP

SSH: secure remote login, maintenance, debugging, and file transfer (SCP/SFTP).

3389

TCP

RDP: Windows Remote Desktop; on the board this is often xrdp or similar.

5900

TCP

VNC: graphical remote desktop access.

View current firewall rules

On the board, run:

iptables-save

This shows the full ruleset (chain policies and each INPUT rule). For a list view only:

iptables -L -n -v

Normally the INPUT chain default policy should be DROP, with ACCEPT rules for ports such as 22, 3389, and 5900 (confirm on your device).

Example (excerpt, for reference only):

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3389 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5900 -j ACCEPT
COMMIT

Adding ports

Rules loaded at boot are usually stored in:

  • IPv4: /etc/iptables/rules.v4

  • IPv6: /etc/iptables/rules.v6

Edit as root, for example:

sudo vi /etc/iptables/rules.v4
sudo vi /etc/iptables/rules.v6

The IPv4 *filter block is similar to the example above: allow established traffic and loopback first, then add ACCEPT lines per port.

Allow a TCP port

After -A INPUT -i lo -j ACCEPT and before COMMIT, add one line (replace PORT with the real port, e.g. 80, 443):

-A INPUT -p tcp -m tcp --dport PORT -j ACCEPT

Alternative form (matches some export formats):

-A INPUT -p tcp --dport PORT -j ACCEPT

Allow a UDP port

-A INPUT -p udp -m udp --dport PORT -j ACCEPT

Remove a port rule

Delete the matching -A INPUT … –dport PORT … line from the rules file. Reload the service (next section) for the change to persist.

Note: Do not remove RELATED,ESTABLISHED or lo (loopback) rules, or return traffic and local services may break.

iptables-restore service

The board enables iptables-restore.service by default to restore rules from rules.v4 / rules.v6 at boot.

Stop the service temporarily

To stop it only for the current session (e.g. troubleshooting):

sudo systemctl stop iptables-restore.service

This is temporary. If the unit is still enabled, it will run again after reboot and reload rules.v4 / rules.v6.

Disable at boot (no auto-load after reboot)

To avoid automatic rule restore after reboot:

sudo systemctl disable iptables-restore.service

After disable, the service will not start on reboot and will not apply rules.v4 / rules.v6 automatically.

To re-enable automatic load at boot:

sudo systemctl enable iptables-restore.service
sudo systemctl start iptables-restore.service

Quick status checks

systemctl is-enabled iptables-restore.service  # enabled at boot or not
systemctl is-active iptables-restore.service   # active now or not

Note: disable only affects whether the unit starts on the next boot; it does not by itself flush current kernel rules. Verify with iptables -L -n.

Reload after editing rule files

After changing the rules files:

sudo systemctl daemon-reload
sudo systemctl restart iptables-restore.service
sudo systemctl status iptables-restore.service

Confirm with iptables -L -n or iptables-save that the live rules match the files.

If the service fails, use systemctl status and logs; check /etc/iptables/rules.v4 syntax (each -A on its own line; *filterCOMMIT paired).

Notes

  • Common remote ports: 22 (SSH), 3389 (RDP), 5900 (VNC) — always confirm with iptables-save on the device.

  • Persist changes in /etc/iptables/rules.v4 (and rules.v6 if needed) by adding or removing –dport lines as above.

  • After edits, run systemctl restart iptables-restore.service and verify with iptables -L -n.

  • systemctl stop iptables-restore.service is temporary; with enabled, rules reload from file after reboot. For lasting policy, edit the files and restart the service.